package org.zjvis.datascience.service.mapper;

import com.alibaba.fastjson.JSONObject;
import java.util.List;
import org.springframework.stereotype.Component;
import org.zjvis.datascience.common.dto.CaseOnlineDTO;
import org.zjvis.datascience.common.dto.KeyValueDTO;
import org.zjvis.datascience.common.dto.ModelLocalDTO;
import org.zjvis.datascience.common.dto.ModelOnlineDTO;

@Component
public interface ModelLocalMapper {
    boolean save(ModelLocalDTO dto);

    boolean update(ModelLocalDTO dto);

    boolean delete(Long id);

    boolean deleteByModelId(JSONObject params);

    List<CaseOnlineDTO> query(String msg, String key);

    List<ModelLocalDTO> queryAll();

    List<ModelLocalDTO> complexQuery(JSONObject param);

    ModelLocalDTO queryById(Long id);

    List<ModelLocalDTO> queryByModelId(JSONObject param);

    List<Long> queryProjectIds(JSONObject param);

    List<ModelLocalDTO> queryByProjectId(Long userId,Long projectId);

    List<Long> queryModelIds(Long userId);

    List<Long>queryInstallModelIds(Long userId);

    List<ModelLocalDTO> queryByModelIdAndProjectId(JSONObject param);

    List<ModelLocalDTO> queryByUid(JSONObject param);

    List<ModelLocalDTO> queryByFolderId(Long folderId);

    List<ModelLocalDTO> queryByName(String name);

    Long queryLatestModelId();

    Long queryRecords(JSONObject param);

    List<KeyValueDTO> queryByField(JSONObject params);

    List<ModelLocalDTO> getAMLoaded(JSONObject params);

    List<ModelOnlineDTO> queryNew();

    List<ModelOnlineDTO> queryMost();

    List<ModelLocalDTO> queryUserLocal(long userId);

    ModelLocalDTO queryByModelIdAndProjectIdAndV(ModelLocalDTO dto);


}